﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using DigDes.DS2012.Integration.Loading;

namespace DigDes.DS2012.DataLoadServiceLibrary
{
    public class DataLoadService : IService
    {
        /// <summary>
        /// Менеджер загрузки. Управляет загрузчиками.
        /// </summary>
        private static DataLoadManager _dataLoadManager;

        /// <summary>
        /// В конструкторе службы создается менеджер загрузки.
        /// </summary>
        public DataLoadService()
        {
            // при инициализации службы создается менеджер загрузки, 
            // который сканирует папку с загрузчиками и добавляет их к себе в список;
            // процесс сканирования вынесен из конструктора в отдельную функцию ImportLoaders(), чтобы
            // можно было сканировать папку с загрузчиками, отдельно от создания экземпляра DataLoadManager
            
        }

        /// <summary>
        /// Выполняет загрузку данных в БД в отдельном потоке.
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="fileBytes"></param>
        /// 
        public static void ImportLoaders()
        {
            _dataLoadManager = new DataLoadManager();
            _dataLoadManager.ImportLoaders();
        }
        public void LoadData(string fileName, byte[] fileBytes)
        {
            (new Task(() => _dataLoadManager.LoadData(fileName, fileBytes))).Start();
        }
        public string Test()
        {
            return "Hello WCF!";
        }
    }
}
